package ex_java;
// test :
// - surcharge de methodes
// - attribut de type non primitif
// - acces aux attributs "interne" avec ou sans le this
// - acces aux d'un autre objet
// - enchainement de methodes -> apel de methode sur le resultat d'une methode
// - opertation +, *, et /

class Compteur {
	public int cpt ;
	public Compteur leC;
	
	public Compteur(int i){
		cpt = i;
	}
	
	public Compteur creerSousCpt(int i){
		this.leC = new Compteur(i);
		return this.leC;
	}
	
	public int getValeur() {
		return cpt;
	}
	
	
	// premet de tester la surcharge
	public void inc(int i){
		this.cpt = cpt + i;
	}
	public void inc(){
		inc(1);
	}
	
	public Compteur getSousCompteur(){
		return this.leC;
	}
}

class test{

	public void main() {
		Compteur c = new Compteur(100);  // c = 100
		Compteur cc ;
		int u = c.creerSousCpt(30).getValeur(); // sous_c = 30
		int v ;
		cc = c.getSousCompteur();
		c.leC.inc(2*c.getValeur() + 10); 	// sous_c = 30 + 2*100 + 10 = 240
		v = c.getSousCompteur().cpt / 2; // si sa marche v = 120
	}
}